TTTTccccllll____CCCCrrrreeeeaaaatttteeeeHHHHaaaasssshhhhEEEEnnnnttttrrrryyyy locates the entry corresponding to a
particular key, creating a new entry in the table if there
wasn't already one with the given key. If an entry already
existed with the given key then *_n_e_w_P_t_r is set to zero. If
a new entry was created, then *_n_e_w_P_t_r is set to a non-zero
value and the value of the new entry will be set to zero.
The return value from TTTTccccllll____CCCCrrrreeeeaaaatttteeeeHHHHaaaasssshhhhEEEEnnnnttttrrrryyyy is a pointer to
the entry, which may be used to retrieve and modify the
entry's value or to delete the entry from the table.
TTTTccccllll____DDDDeeeelllleeeetttteeeeHHHHaaaasssshhhhEEEEnnnnttttrrrryyyy will remove an existing entry from a
table. The memory associated with the entry itself will be
freed, but the client is responsible for any cleanup
associated with the entry's value, such as freeing a
structure that it points to.
TTTTccccllll____FFFFiiiinnnnddddHHHHaaaasssshhhhEEEEnnnnttttrrrryyyy is similar to TTTTccccllll____CCCCrrrreeeeaaaatttteeeeHHHHaaaasssshhhhEEEEnnnnttttrrrryyyy except
that it doesn't create a new entry if the key doesn't exist;
instead, it returns NULL as result.
TTTTccccllll____GGGGeeeettttHHHHaaaasssshhhhVVVVaaaalllluuuueeee and TTTTccccllll____SSSSeeeettttHHHHaaaasssshhhhVVVVaaaalllluuuueeee are used to read and
write an entry's value, respectively. Values are stored and
retrieved as type ``ClientData'', which is large enough to
hold a pointer value. On almost all machines this is large
enough to hold an integer value too.
TTTTccccllll____GGGGeeeettttHHHHaaaasssshhhhKKKKeeeeyyyy returns the key for a given hash table entry,
either as a pointer to a string, a one-word (``char *'')
key, or as a pointer to the first word of an array of
integers, depending on the _k_e_y_T_y_p_e used to create a hash
table. In all cases TTTTccccllll____GGGGeeeettttHHHHaaaasssshhhhKKKKeeeeyyyy returns a result with
type ``char *''. When the key is a string or array, the
result of TTTTccccllll____GGGGeeeettttHHHHaaaasssshhhhKKKKeeeeyyyy points to information in the table
entry; this information will remain valid until the entry
is deleted or its table is deleted.
TTTTccccllll____FFFFiiiirrrrssssttttHHHHaaaasssshhhhEEEEnnnnttttrrrryyyy and TTTTccccllll____NNNNeeeexxxxttttHHHHaaaasssshhhhEEEEnnnnttttrrrryyyy may be used to scan
all of the entries in a hash table. A structure of type
``Tcl_HashSearch'', provided by the client, is used to keep
track of progress through the table. TTTTccccllll____FFFFiiiirrrrssssttttHHHHaaaasssshhhhEEEEnnnnttttrrrryyyy
initializes the search record and returns the first entry in
the table (or NULL if the table is empty). Each susequent
call to TTTTccccllll____NNNNeeeexxxxttttHHHHaaaasssshhhhEEEEnnnnttttrrrryyyy returns the next entry in the
table or NULL if the end of the table has been reached. A
call to TTTTccccllll____FFFFiiiirrrrssssttttHHHHaaaasssshhhhEEEEnnnnttttrrrryyyy followed by calls to
TTTTccccllll____NNNNeeeexxxxttttHHHHaaaasssshhhhEEEEnnnnttttrrrryyyy will return each of the entries in the
table exactly once, in an arbitrary order. It is
unadvisable to modify the structure of the table, e.g. by
creating or deleting entries, while the search is in
progress.
TTTTccccllll____HHHHaaaasssshhhhSSSSttttaaaattttssss returns a dynamically-allocated string with